#include "searcher.hpp"
#include "cpp-httplib/httplib.h"

const std::string root_path = "./wwwroot";
const std::string input = "data/raw_html/raw.txt";

int main()
{
    ns_searcher::Searcher search;
    search.InitSearcher(input);

    httplib::Server svr;

    svr.set_base_dir(root_path.c_str());
    svr.Get("/s", [&search](const httplib::Request &req, httplib::Response &rsp)
            {
                if (!req.has_param("word"))
                {
                    rsp.set_content("必须要有搜索关键字!", "text/plain; charset=utf-8");
                    return;
                }
                std::string word = req.get_param_value("word");
                // std::cout << "用户在搜索：" << word << std::endl;
                LOG(NORMAL, "用户在搜索：" + word);
                std::string json_string;
                search.Search(word, &json_string);
                rsp.set_content(json_string, "application/json");
                // rsp.set_content("Hello Word!", "text/plain: charset = utf-8");
            });
    LOG(NORMAL, "服务器启动成功...");
    svr.listen("0.0.0.0", 8081);
    return 0;
}

// #include "searcher.hpp"
// #include "cpp-httplib/httplib.h"

// int main()
// {
//     httplib::Server svr;

//     // 修正路由处理和响应头
//     svr.Get("/hello", [](const httplib::Request &req, httplib::Response &rsp)
//             {
//         // 修正Content-Type为正确格式：text/plain; charset=utf-8（注意分号和空格）
//         // 修正拼写错误：Hello World!
//         rsp.set_content("Hello World!", "text/plain; charset=utf-8"); });

//     // 启动服务器监听0.0.0.0:8081（确保端口未被占用且防火墙允许访问）
//     if (svr.listen("0.0.0.0", 8081))
//     {
//         printf("Server started on http://0.0.0.0:8081\n");
//     }
//     else
//     {
//         printf("Failed to start server\n");
//         return 1;
//     }
//     return 0;
// }
